package cn.wolfcode.web.advice;


import cn.wolfcode.exception.LoginException;
import cn.wolfcode.exception.PermissionException;
import cn.wolfcode.qo.JsonResult;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

// 控制器增强器，专门用于统一异常处理
@ControllerAdvice
public class ExceptionControllerAdvice {

    // @ExceptionHandler 针对什么类型的异常
    // 可以定义形参,形参是异常类型
    // 根据不同的异常响应不同内容
    @ExceptionHandler(LoginException.class)
    @ResponseBody
    public JsonResult handleException(LoginException e){
        e.printStackTrace();
        return new JsonResult(false,e.getMessage());
    }

    @ExceptionHandler(PermissionException.class)
    public String handleException(PermissionException e){
        e.printStackTrace();
        return "common/nopermission";
    }
}
